/**
 * @param {character[][]} grid
 * @return {number}
 */
 var numIslands = function(grid) {
    var directions=[[1,0],[-1,0],[0,1],[0,-1]];
    var h=grid.length;
    var w=grid[0].length;
    var visited=new Array(h);
    for(let i=0;i<h;i++){
        visited[i]=new Array(w).fill(0);
    }
    function dfs(x,y){
        console.log(x,y);
        for(let [dx,dy] of directions){
            if(x+dx>=0&&x+dx<h&&y+dy>=0&&y+dy<w&&visited[x+dx][y+dy]==0&&grid[x+dx][y+dy]=="1"){
                visited[x+dx][y+dy]=1;
                dfs(x+dx,y+dy);
            }
        }
        return;
    }
    var ret=0;
    for(let i=0;i<h;i++){
        for(let j=0;j<w;j++){
            if(visited[i][j]==0&&grid[i][j]=="1"){
                visited[i][j]=1;
                dfs(i,j);
                ret++;
            }
        }
    }
    return ret;
};

console.log(numIslands([["1","1","1"],["0","1","0"],["1","1","1"]]))

//1 1 1
//0 1 0
//1 1 1 执行用时：
// 104 ms
// , 在所有 JavaScript 提交中击败了
// 35.33%
// 的用户
// 内存消耗：
// 41.1 MB
// , 在所有 JavaScript 提交中击败了
// 26.04%
// 的用户